package com.shop.cereshop.admin.page.wallet;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@ApiModel(value = "WalletTransactionVO", description = "钱包流水响应参数")
public class TransactionVO {

    @ApiModelProperty(value = "流水ID", example = "1", notes = "流水唯一标识，默认值：无")
    private Long transactionId;

    @ApiModelProperty(value = "用户ID", example = "8324", notes = "用户唯一标识，默认值：无")
    private Long buyerUserId;

    @ApiModelProperty(value = "交易类型", example = "1", notes = "1-充值 2-消费 3-退款 4-提现 5-冻结 6-解冻 7-奖励 8-佣金，默认值：无")
    private String transactionType;

    @ApiModelProperty(value = "交易金额", example = "100.00", notes = "交易金额，默认值：无")
    private BigDecimal amount;

    @ApiModelProperty(value = "交易前余额", example = "1000.00", notes = "交易前钱包余额，默认值：无")
    private BigDecimal beforeBalance;

    @ApiModelProperty(value = "交易后余额", example = "1100.00", notes = "交易后钱包余额，默认值：无")
    private BigDecimal afterBalance;

    @ApiModelProperty(value = "交易描述", example = "钱包充值", notes = "交易详细描述，默认值：无")
    private String description;

    @ApiModelProperty(value = "关联订单号", example = "ORDER202412010001", notes = "关联的订单号，默认值：无")
    private String orderNo;

    @ApiModelProperty(value = "交易状态", example = "SUCCESS", notes = "SUCCESS-成功 FAILED-失败，默认值：SUCCESS")
    private String status;

    @ApiModelProperty(value = "创建时间", example = "2024-12-01 10:00:00", notes = "交易创建时间，默认值：无")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "更新时间", example = "2024-12-01 10:00:00", notes = "交易更新时间，默认值：无")
    private LocalDateTime updateTime;
}